/*
 * @Description:客户API
 * @Author:zqy
 * @Date:2022-10-25 11:42:01
 * @Last Modified by: zqy
 * @Last Modified time: 2023-04-07 15:08:01
 */
import request from '@/utils/request'

import { json2FormData } from '@/utils'

// 获取客户列表
export function getCustomerList(params, headers) {
  const filtersRaw = params.filtersRaw || []
  const paramsRaw = params.paramsRaw || {}
  const sortersRaw = params.sortersRaw || []

  const data = json2FormData({
    page: params.page,
    rows: params.rows,
    filtersRaw: JSON.stringify(filtersRaw),
    sortersRaw: JSON.stringify(sortersRaw),
    paramsRaw: JSON.stringify(paramsRaw)
  })
  return request({
    url: '/app/v1/clueCustomer/dis/page',
    method: 'post',
    data,
    headers,
    loading: true, // 是否显示加载
    message: '正在加载' // 加载提示信息
  })
}
/**
 * 客户端新增
 * @param {*} data
 * @returns
 */
export function clueCustomerDisCreate(data, headers) {
  return request({
    url: '/app/v1/clueCustomer/dis/create',
    method: 'post',
    data,
    headers,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}

/**
 * 修改
 * @param {*} data
 * @returns
 */
export function clueCustomerDisUpdate(data, headers) {
  return request({
    url: '/app/v1/clueCustomer/dis/update',
    method: 'POST',
    data,
    headers,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}

/**
 * 获取详情
 * @param {*} id
 * @returns
 */
export function getDisDetail(id) {
  return request({
    url: `/app/v1/clueCustomer/dis/${id}`,
    method: 'GET'
  })
}
/**
 * 终端操作客户流失
 * @param {*} data
 * @returns
 */
export function disFailure(data) {
  return request({
    url: '/app/v1/clueCustomer/dis/failure',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}
/**
 * 查询线索标签
 * @param {*} clueCustomerId 线索客户ID
 * @returns
 */
export function queryByClueCustomerId(clueCustomerId) {
  return request({
    url: '/app/v1/relaClueCustomerLabel/queryByClueCustomerId',
    method: 'GET',
    params: { clueCustomerId },
    loading: false
  })
}

/**
 * 线索客户关联标签
 * @param {*} data
 * @returns
 */
export function relaClueCustomerLabel(data) {
  return request({
    url: '/app/v1/relaClueCustomerLabel/save',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}
/**
 * 退回总部
 * @param {*} data
 * @returns
 */
export function disReturn(data) {
  return request({
    url: '/app/v1/clueCustomer/dis/disReturn',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}
/**
 * 自投反馈
 * @param {*} data
 * @returns
 */
export function disAdvertisementFeedback(data) {
  return request({
    url: '/app/v1/clueCustomer/dis/disAdvertisementFeedback',
    method: 'POST',
    data
  })
}

/**
 * 客户跟进
 * @param {*} data
 * @returns
 */
export function customerFollowUp(data) {
  return request({
    url: '/app/v1/followupRecord/customerFollowUp',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}
/**
 * 客户分配
 * @param {*} data
 * @returns
 */
export function assignGuide(data) {
  return request({
    url: '/app/v1/clueFollowUpUser/assignGuide',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}

/**
 * 根据线索id获取导购
 * @param {*} clueCustomerId
 * @returns
 */
export function queryGuidByClueCustomerId(clueCustomerId) {
  return request({
    url: '/app/v1/clueFollowUpUser/queryGuidByClueCustomerId',
    method: 'GET',
    params: { clueCustomerId }
  })
}

/**
 * 查询职员列表
 * @param {Number} page 当前页
 * @param {Number} rows 分页数
 * @param {String} disOrgCodes 门店组织编码
 * @param {String} positionCodes 职务编码
 * @param {String} employeeName 关键字
*/
export function employeePage(data) {
  return request({
    url: '/app/v1/employee/page',
    method: 'post',
    data,
    loading: false,
    message: '正在加载'
  })
}
/**
 * 创建收款记录
 * @param {*} data
 * @returns
 */
export function receiptInfoCreate(data) {
  return request({
    url: '/app/v1/receiptInfo/create',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}

/**
 * 退回门店
 * @param {*} data
 * @returns
 */
export function returnShop(data) {
  return request({
    url: '/app/v1/clueCustomer/dis/returnShop',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}

/**
 * 根据线索客户id查询累计收款
 * @param {*} clueCustomerId
 * @returns
 */
export function getShopRemainingAmount(clueCustomerId) {
  return request({
    url: '/app/v1/receiptInfo/getShopRemainingAmount',
    method: 'GET',
    params: {
      clueCustomerId
    },
    loading: false
  })
}

/**
 * 创建商机
 * @param {*} data
 * @returns
 */
export function createOpty(data) {
  return request({
    url: '/app/v1/opty/createOpty',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}

/**
 * 查询当前租户下所有经销商
 * @returns
 */
export function queryMyDisInTenant(keyword) {
  return request({
    url: '/app/v1/labelCategory/dis/queryMyDisInTenant',
    method: 'GET',
    params: { keyword: keyword || '' },
    loading: false
  })
}
/**
 * 获取所有经销商标签分类
 * @returns
 */
export function getLabelCategoryDisAll(disCodes, headers) {
  const data = new FormData()
  data.append('pageFlag', false)
  const filtersRaw = [
    { id: 'enable', property: 'enable', value: '1', operator: '=' },
    { id: 'disCode', property: 'disCode', value: `[${disCodes.join(',')}]`, operator: 'in' }
  ]
  data.append('filtersRaw', JSON.stringify(filtersRaw))
  return request({
    url: '/app/v1/labelCategory/dis/page',
    method: 'POST',
    data,
    headers
  })
}

/**
 * 获取经销商标签
 * @param {*} data
 * @returns
 */
export function labelDisPage(data, headers) {
  return request({
    url: '/app/v1/label/dis/page',
    method: 'POST',
    data,
    headers
  })
}

/**
 * 浏览记录
 * @param {*} data
 * @returns
 */
export function browseRecordPage(data, headers) {
  return request({
    url: '/app/v1/followupRecord/page',
    method: 'POST',
    data,
    headers
  })
}
/**
 * 跟进记录
 * @param {*} data
 * @returns
 */
export function followupRecordPage(data, headers) {
  return request({
    url: '/app/v1/followupRecord/page',
    method: 'POST',
    data,
    headers
  })
}
/**
 * 商机信息
 * @param {*} data
 * @returns
 */
export function optyDisPage(data, headers) {
  return request({
    url: '/app/v1/opty/dis/page',
    method: 'POST',
    data,
    headers
  })
}

/**
 * 商机分配设计师
 * @param {*} data
 * @returns
 */
export function assignDesigner(data) {
  return request({
    url: '/app/v1/optyFollowUpUser/assignDesigner',
    method: 'POST',
    data,
    loading: true, // 是否显示加载
    message: '保存中' // 加载提示信息
  })
}
/**
 * 收款信息
 * @param {*} data
 * @returns
 */
export function queryDesignerByOptyId(optyId) {
  return request({
    url: '/app/v1/optyFollowUpUser/queryDesignerByOptyId',
    method: 'get',
    params: { optyId },
    loading: false
  })
}
/**
 * 收款信息
 * @param {*} data
 * @returns
 */
export function receiptInfoPage(data, headers) {
  return request({
    url: '/app/v1/receiptInfo/page',
    method: 'POST',
    data,
    headers
  })
}

/**
 * 根据零售单编码查询订单详情
 * @param {String} disCode 经销商
 * @param {String} retailOrderCode 零售单号
 * @returns
 */
export function getOrderDetail(disCode, retailOrderCode) {
  return request({
    url: `/app/v1/retail/order/detail/${disCode}/${retailOrderCode}`,
    method: 'get'
  })
}

// 获取零售订单列表信息
export function getOrderList(data) {
  return request(
    {
      url: '/app/v1/retail/order/page',
      method: 'post',
      data,
      loading: true, // 是否显示加载
      message: '正在加载' // 加载提示信息
    }
  )
}

/**
 * 获取经销商配置 品类选择
 * @param {*} disCode
 * @returns
 */
export function distributorConfigCategoryByDisCode(disCode) {
  return request({
    // url: '/app/v1/distributorConfig/getDistributorConfig',
    url: '/app/v1/distributorConfig/getDistributorCategorySelection',
    method: 'GET',
    params: { disCode }
  }).then(res => {
    return res.data || []
  })
}
